package com.collection.searchings;

import java.util.Arrays;

public class BinarySearchByteArrayExample {
	public static void main(String[] args) {
	    //create byte array
	    byte bArray[] = {1,2,4,5};
	   
	    /*
	      To perform binary search on byte array use
	      int binarySearch(byte[] b, byte value) of Arrays class. This method searches
	      the byte array for specified byte value using binary search algorithm.
	     
	      Please note that the byte array MUST BE SORTED before it can be searched
	      using binarySearch method.
	     
	      This method returns the index of the value to be searched, if found in the
	      array.
	      Otherwise it returns (- (X) - 1)
	      where X is the index where the the search value would be inserted.
	      i.e. index of first element that is grater than the search value
	      or array.length, if all elements of an array are less than the
	      search value.
	    */
	   
	    //sort byte array using Arrays.sort method
	    Arrays.sort(bArray);
	   
	    //value to search
	    byte searchValue = 2;
	   
	    //since 2 is present in byte array, index of it would be returned
	    int intResult = Arrays.binarySearch(bArray,searchValue);
	    System.out.println("Result of binary search of 2 is : " + intResult);
	   
	    //lets search something which is not in byte array !
	    searchValue = 3;
	    intResult = Arrays.binarySearch(bArray,searchValue);
	    System.out.println("Result of binary search of 3 is : " + intResult);
	 
	  }
}
